<?php
namespace Mob \ Model;

use Think \ Model;
use Think \ Hook;
/**请求模型
 * Class InfoModel
 */

require_once ('./Application/Mob/Common/function.php');

class RewardModel extends Model {
	/**
	 * CreateTask  创建受理
	 * @param $Uid  受理人员UID
	 * @param $TaskSerialno  任务流水号
	 * @param $AcceptContents  内容
	 * @param $Acceptlatitude  经度
	 * @param $Acceptlongitude  纬度
	 * @return bool
	 * @author:wanghongyan
	 */
	public function CreateAccept($Uid, $TaskSerialno,$AcceptContents='',$Acceptlatitude='',$Acceptlongitude='') {
		$data = array (
		        'AcceptSerialno'=>getAcceptSerialno(),  //获取生成流水号
				'AcceptUid' => $Uid, //用户ID
		        'taskSerialno' => $TaskSerialno, //任务流水号
	            'AcceptContents' => $AcceptContents,  //描述
			    'Acceptlatitude' => $Acceptlatitude,   //当前纬度
			    'Acceptlongitude' => $Acceptlongitude,); //当前经度
		if (!$data)
			return false;
		if ($this->add($data)) {
			return true;
		} else {
			return false;
		}
	}




    /**
	 * myTasks  我的受理
	 * @param $Uid       用户ID
	 * @return $TaskInfo  返回任务信息
	 * @author:wanghongyan
	 */
    public function myAccepts($Uid)
    {
      $where['AcceptUid']=$Uid;  //取人员ID信息
      $where['AcceptStatus']=array('neq',3);	 //状态为非删除状态
      $accept = M("accept");
     $myaccept = $accept->where($where)->field('AcceptSerialno,AcceptUid,AcceptTime,taskSerialno,AcceptContents,Acceptlatitude,Acceptlongitude,AcceptStatus,AckAcceptTime,CompleteTime,IsAck')->select();
      return $myaccept;

    }

    /**
	 * releaseTask  受理详情
	 * @param $Serialno       受理流水号
	 * @return 任务详情  返回任务信息
    */
    public function getAcceptDetail($Serialno)
    {
     $accept = M('accept')->where(array('AcceptSerialno'=>$Serialno,'AcceptStatus'=>array('neq',3)))->field('AcceptSerialno,AcceptUid,AcceptTime,taskSerialno,AcceptContents,Acceptlatitude,Acceptlongitude,AcceptStatus,AckAcceptTime,CompleteTime,IsAck,CompleteDescribe,CompleteDegree')->find();
     if(!$accept)
     {
     return null;
     }
     else
     {
     return $accept;
     }
    }
     /**
	 * releaseTask  查询任务受理情况
	 * @param $Serialno       任务流水号
	 * @return 受理详情  返回受理信息
    */
    public function GetTaskAcceptDetail($TaskSerilano)
    {
     $accept = M('accept')->where(array('taskSerialno'=>$TaskSerilano,'AcceptStatus'=>array('neq',3)))->field('AcceptSerialno,AcceptUid,AcceptTime,taskSerialno,AcceptContents,Acceptlatitude,Acceptlongitude,AcceptStatus,AckAcceptTime,CompleteTime,IsAck')->select();
     if(!$accept)
     {
     return null;
     }
     else
     {
     return $accept;
     }
    }
    /**
	 * releaseTask  查询任务申请人数
	 * @param $Serialno       任务流水号
	 * @return 申请任务人数
    */

    public function GetTaskapplyCount($TaskSerilano)
    {
    $where['taskSerialno']=	$TaskSerilano;   //拼写任务流水号
    $where['AcceptStatus']= array('neq',3);  //拼写受理状态不等于删除的

    $Accept = M('Accept');   //实例化模型
    $count = $Accept->where($where)->count();
    return $count;

    }
    /**
	 * IsAccept  判断某工号是否已经申请过任务
	 * @param $Serialno       任务流水号
	 * @param $Uid            用户ID
	 * @return 验证结果 true=已经申请过，false=没有申请过
    */

    public function IsAccept($Serialno,$Uid)
    {
     $where['taskSerialno']= $Serialno; //拼写where条件
     $where['AcceptUid']=$Uid;
     $where['AcceptStatus']= array('IN','0,1');

     $Task = M('accept');
     $count  = $Task->where($where)->count();
     if($count==0)
     {
     return false;
     }elseif($count<=1)
     {
     return true;
     }
    }
    /**
	 * AckAccepts  设置某一受理记录为任务最终选择。
	 * @param $TaskSerialno       任务流水号
	 * @param $AcceptSerialno     受理流水号
	 * @return 操作结果 true=成功，false=失败
    */

    public function AgreeAccept($TaskSerialno,$AcceptSerialno)
    {
     $result = M('Accept')->data(array('AcceptStatus'=>1))->where("taskSerialno = '%s' and AcceptSerialno = '%s' and AcceptStatus = 0 ",$TaskSerialno,$AcceptSerialno)->save();
     if($result)
      {
      return true;
      }else
      {
      return false;
      }
    }
    /**
	 * IsAuthAccept  判断某工号是否有受理任务权限
	 * @param $Uid       Uid
	 * @return 验证结果 true=有权限，false=没有权限
    */

    public function IsAuthAccept($Uid )
    {
    return true;
    }

    /**
	 * AcceptOperLog  记录受理操作日志
	 *
	 *
    */

    public function AcceptOperLog($Acceptid,$Serialno,$OperateType,$OperUid,$OperFlg,$ext='')
   {
   	$Operatelog = D('Mob/OperateLog');
   	$data['AcceptSerialno']=$Acceptid;
   	$data['TaskSerialno']=$Serialno;
   	$data['OperateType']=$OperateType;
   	$data['OperateUid']=$operUid;
   	$data['OperateFlg']=$OperFlg;
   	$data['Ext']=$ext;
   	$Operatelog->write($data);


   }
    /**
	 * QueryAccept  查询我的受理
	 * @param where查询条件
	 *
    */

   public function QueryAccept($where)
   {
   $Accept = M('Accept');
   $result = $Accept->where($where)->select();
   return $result;

   }
   /**
	 * MyAgreeAccept  查询选择我的受理
	 *
	 *
    */

   public function MyAgreeAccept($Uid)
   {
   $where['AcceptUid']=	$Uid;
   $where['AcceptStatus']=1;
   return $this->where($where)->select();

   }
     /**
	 * confirmAccept  完成受理操作
	 * @param $TaskSerialno 任务流水号
	 * @param $AcceptSerialno 受理流水号
	 * @return 操作结果  true =操作成功 false=操作失败
    */

   public function confirmAccept($TaskSerialno,$AcceptSerialno)
   {
   	$where['AcceptSerialno']=$AcceptSerialno;
   	$where['taskSerialno']=$TaskSerialno;
   	$where['AcceptStatus']=1;
   	$data['AckAcceptTime']=getDateTime();
   	$data['IsAck']=1;
   	$Accept = M('Accept');
   	$result = $Accept->data($data)->where($where)->save();
   	if($result)
   	{
   	return true;
   	}else
   	{
   	return false;
   	}
   }

   public function cancelAccept()
   {


   }

   public function DelAccept($AcceptSerialno)
   {



   }

    /**
	 * isChoose  判断受理ID是否为任务最终选择
	 * @param $Serialno  任务流水号
	 * @param $AcceptSerialno  受理流水号
	 * @return 是否已经受理   true =成功,false=失败
	*/

    public function isChoose($TaskSerialno,$AcceptSerialno)
    {
    $result = $this->where("AcceptSerialno = '%s' and taskSerialno = '%s' and AcceptStatus = '1' ",$AcceptSerialno,$TaskSerialno)->find();

    return $result;



    }

     /**
	 * CompleteAccept  完成受理操作
	 * @param $Serialno  任务流水号
	 * @param $AcceptSerialno  受理流水号
	 * @param $CompleteDegree 完成程度
	 * @param $CompleteDescribe 完成描述
	 * @return 完成状态   true =成功,false=失败
	*/
   public function CompleteAccept($TaskSerialno,$AcceptSerialno,$CompleteDegree,$CompleteDescribe)
   {
   	$where['AcceptSerialno']=$AcceptSerialno;
   	$where['taskSerialno']=$TaskSerialno;
   	$where['AcceptStatus']=1;
   	$data['CompleteTime']=getDateTime();
   	$data['IsAck']=1;
   	$data['CompleteDescribe']=$CompleteDescribe;
   	$data['CompleteDegree']=$CompleteDegree;

   $result = $this->where($where)->save($data);
   return $result;

   }
     /**
	 * getTaskFinaChoice  取任务最终选择受理信息
	 * @param $Serialno  任务流水号
	 * @param $AcceptSerialno  受理流水号
	 * @param $CompleteDegree 完成程度
	 * @param $CompleteDescribe 完成描述
	 * @return 完成状态   true =成功,false=失败
	*/


   public function getTaskFinaChoice($TaskSerialno)
   {
    $task = D('Task');
   $TaskInfo = $task->QueryTask($TaskSerialno);// 取任务信息

    if($TaskInfo['IsackAccep']==1)//如果任务已经选择受理了
    {
    $where['AcceptSerialno']=$TaskInfo['ackAcceptSerialno'];  //拼写where条件，受理流水号
   return $AcceptId = $this->where($where)->field('AcceptSerialno,AcceptUid,AcceptTime,AcceptContents,AckAcceptTime,CompleteTime,IsAck,CompleteDescribe,CompleteDegree')->find();


    }else
    {

    return null;
    }

   }
















}